home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Portable Patmos 1.1 / patmos-src / src / sighandler.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-01-19  |  1.0 KB  |  48 lines  |  [TEXT/KAHL]

  1. #include <sys/signal.h>
  2. #include <sys/signalvar.h>
  3. #include "proc_mmu.h"
  4.  
  5. int sigaction(int signo, const struct sigaction *new_sig, struct sigaction *old_sig)
  6.     {
  7.     if ((signo>0) && (signo < NSIG))
  8.         {
  9.         struct sigaction tmp;
  10.         tmp.sa_handler = SIGACTION(crp, signo);
  11.         tmp.sa_mask = crp->p_sigacts->ps_catchmask[signo];
  12.         tmp.sa_flags = crp->p_sigacts->ps_flags;
  13.         SIGACTION(crp, signo) = new_sig->sa_handler;
  14.         crp->p_sigacts->ps_catchmask[signo] = new_sig->sa_mask;
  15.         *old_sig = tmp;
  16.         return 0;
  17.         }
  18.     }
  19.     
  20. int    sigsuspend(const sigset_t *mask)
  21.     {
  22.     crp->p_sigacts->ps_oldmask = *mask;
  23.     }
  24.     
  25. int    sigstack(const struct sigstack *stack1, struct sigstack *stack2)
  26.     {
  27.     struct sigstack tmp;
  28.     tmp = crp->p_sigacts->ps_sigstack;
  29.     crp->p_sigacts->ps_sigstack = *stack1;
  30.     *stack2 = tmp;
  31.     }
  32.  
  33. int    sigprocmask(int signo, const sigset_t *set1, sigset_t *set2)
  34.     {
  35.     if ((signo>0) && (signo < NSIG))
  36.         {
  37.         sigset_t tmp;
  38.         tmp = crp->p_sigacts->ps_catchmask[signo];
  39.         crp->p_sigacts->ps_catchmask[signo] = *set1;
  40.         *set2 = tmp;
  41.         }
  42.     }
  43.  
  44. int    sigreturn(struct sigcontext *context)
  45.     {
  46.     
  47.     }
  48.